﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace SAM.Framework.UserBrowser
{
    /// <summary>
    /// 用户自定义浏览器接口
    /// </summary>
    public interface IUserBrowser:IDisposable
    {
        /// <summary>
        /// 加载网页的接口
        /// </summary>
        /// <param name="url"></param>
        void Load(string url);

        /// <summary>
        /// 获取原始的浏览器对象，一般情况下不可使用，只用于调试
        /// </summary>
        [Obsolete(" 获取原始的浏览器对象，一般情况下不可使用，只用于调试")]
        object OriginBrowser { get; }

        /// <summary>
        /// 执行js代码
        /// </summary>
        /// <param name="code"></param>
        /// <param name="scriptUrl"></param>
        /// <param name="startLine"></param>
        void ExecuteJavaScriptAsync(string code, string scriptUrl = "about:blank", int startLine = 0);

        /// <summary>
        /// 注入一个对象到browser中
        /// </summary>
        /// <param name="name">在js访问的对象名</param>
        /// <param name="transportObject">.net对象</param>
        void RegisterObject(string name, TransportObject transportObject);

        /// <summary>
        /// 页面加载完成后执行的函数
        /// </summary>
        event EventHandler OnFrameLoadEnd;

    }
}
